package com.anti.jdbc.core;

import java.util.List;

/**
 * @Description 实体操作基础类
 * @Author anTi
 * @Date 2021-3-12
 */
public interface EntityJdbcOperations {
    /**
     *
     * @param persistent  持久化实体
     * @return  受更改影响的行数
     */
    int insert(Object persistent);

    /**
     *
     * @param persistent
     * @return
     */
    int insertWithNull(Object persistent);

    /**
     * insert and return primary key
     * @param persistent
     * @return
     */
    Object insertKey(Object persistent);

    /**
     * 如果数据量太大，建议分阶段插入，最好一次不超过10,000。
     * @param persistents
     * @return
     */
    int batchInsert(List<?> persistents);

    /**
     * 更新实体
     * @param persistent Persistent Entity List
     * @return  返回受影响的行数
     */
    int update(Object persistent);

    /**
     * 批量更新 update
     * @param persistents 实体列表List
     * @return 返回受影响的行数
     */
    int batchUpdate(List<?> persistents);

}
